package com.rc.saas.tenant.mapper.invoice;


import com.rc.saas.tenant.common.base.BaseMapper;
import com.rc.saas.tenant.model.invoice.InvoiceApply;
import com.rc.saas.tenant.model.invoice.InvoiceApplyExample;
import com.rc.saas.tenant.search.invoice.InvoiceSearch;
import com.rc.saas.tenant.vo.invoice.CountInvoice;
import com.rc.saas.tenant.vo.invoice.InvoiceApplyPrintVo;
import com.rc.saas.tenant.vo.invoice.InvoiceApplyResultVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface InvoiceApplyMapper extends BaseMapper<Long, InvoiceApply, InvoiceApplyExample> {

    List<InvoiceApplyResultVo> listInvoiceApply(InvoiceSearch invoiceSearch);

    List<InvoiceApplyPrintVo> exportInvoiceApply(InvoiceSearch invoiceSearch);

    CountInvoice countInvoiceByStation(@Param("elecStationId")Long elecStationId,@Param("tenantCode")String tenantCode,@Param("tenantOperatorCode")String tenantOperatorCode);

    List<InvoiceApplyResultVo> listPageInvoiceApplyByProxy(InvoiceSearch invoiceSearch);

    void insertReturnId(InvoiceApply invoiceApply);

    InvoiceApply selectByKey(Long id);
}